perm filename FLTR[1,LCS] blob sn#305778 filedate 1977-09-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	ARRAY AMP(12) < NEXT SETS UP SPECTRUM OF HARMONICS.
C00005 ENDMK
C⊗;
ARRAY AMP(12); < NEXT SETS UP SPECTRUM OF HARMONICS.
FUNCTION FLTINI(A,B,C,D,E,F,G,H,I,J);
BEGIN AMP(1)←A;AMP(2)←B;AMP(3)←C;AMP(4)←D;AMP(5)←E;
AMP(6)←F;AMP(7)←G;AMP(8)←H;AMP(9)←I;AMP(10)←J;  END;

FUNCTION FLTR(ARRAY FUNC); COMMENT: THIS REDUCES HARMS WHEN GOING UP.;
BEGIN  ARRAY AX(12);
VARIABLE Z,K,XX,HX,XY,XK,KX,JX,WW;
FOR KX←1 STEP 1 UNTIL 10 DO BEGIN
AX(KX)←AMP(KX); END;
FOR KX←2 STEP 1 UNTIL 10 DO BEGIN  
	IF P3*(KX+1) > SRATE/2 THEN BEGIN 
	AX(KX+1)←0; 	
       	Z←1-P3*(KX)/(SRATE/2);  
		IF Z<0 THEN Z←0;
		IF Z>AX(KX) THEN Z←AX(KX);
		AX(KX)←Z;  
		END;
	END;
JX←0; FOR KX←1 STEP 1 UNTIL 10 DO BEGIN
	JX←JX+AX(KX);END;
IF JX=WW THEN RETURN;
WW←JX;
FOR JX ← 0 STEP 1 UNTIL 511 DO  BEGIN
	FUNC(JX) ← 0; 
	END;  COMMENT: CLEAR THE ARRAY;

HX←360/512;  
	FOR XY ←1 STEP 1 UNTIL 10 DO
	BEGIN  	K←0;
   	   FOR JX ← 0 STEP 1 UNTIL 511  DO
	   BEGIN
		XK ← SIND(K*HX) * AX(XY);
		FUNC(JX) ← FUNC(JX) + XK ;
		K ← K+XY;	IF K > 512 THEN K ← K-512;
 	   END;
END;PRINT "  SYNTH ARRAY  ",AX(1),AX(2),AX(3),AX(4),AX(5),
AX(6),AX(7),AX(8),AX(9),AX(10);
XY ← FUNC(0);   COMMENT: NEXT FOR NORMALIZATION;
FOR JX ← 1 STEP 1 UNTIL 511  DO BEGIN HX ← ABS(FUNC(JX)); 
	IF XY < HX THEN XY ← HX;  END;

FOR JX ← 0 STEP 1 UNTIL 511  DO  BEGIN  FUNC(JX) ← FUNC(JX) / XY ;  END;
END;
P3←1000; FLTINI(1,1,1,1,1,1,1,1,1,1);FLTR(F3);
P3←500;FLTR(F3);